package com.kongwg.exer1;

import java.util.*;

/**
 * 分别创建以下方法：
 *  public void save(String id,T entity)： 保存 T 类型的对象到 Map 成员变量中
 *  public T get(String id)：从 map 中获取 id 对应的对象
 *  public void update(String id,T entity)：替换 map 中key为id的内容,改为 entity 对象
 *  public List<T> list()：返回 map 中存放的所有 T 对象
 *  public void delete(String id)：删除指定 id 对象
 * @author kongwg
 * @create 2020-12-17 16:19
 */
public class DAO<T>{
    private Map<String,T> map = new HashMap<String , T>();

    //public void save(String id,T entity)： 保存 T 类型的对象到 Map 成员变量中
    public void save(String id,T entity){
        map.put(id,entity);
    }
    //public T get(String id)：从 map 中获取 id 对应的对象
    public T get(String id){
        return map.get(id);
    }
    //public void update(String id,T entity)：替换 map 中key为id的内容,改为 entity 对象
    public void  update(String id,T entity){
        map.put(id,entity);
    }
    //public List<T> list()：返回 map 中存放的所有 T 对象
    public List<T> list(){

        Set<Map.Entry<String, T>> entries = map.entrySet();
        Iterator<Map.Entry<String, T>> iterator = entries.iterator();
        ArrayList<T> list = new ArrayList<>();
        while (iterator.hasNext()){
            Map.Entry<String, T> kv = iterator.next();
            String key = kv.getKey();
            T value = kv.getValue();
//            System.out.println(key + "" + value);
            list.add(value);

        }
        return list;
    }
    //public void delete(String id)：删除指定 id 对象
    public  void  delete(String id){
        map.remove(id);
    }
}
